import axios from 'axios'

// 获取地图数据
export const getMapData = async (areaCode: string = '100000'): Promise<any> => {
  try {
    // 从阿里云数据可视化平台获取地图数据
    const { data } = await axios.get(`/api/common/area/geo?areaCode=${areaCode}`)
    return data
  } catch (error) {
    console.error('获取地图数据失败:', error)
    throw error
  }
}

// 根据区域代码判断区域级别
export const getAreaLevel = (areaCode: string): 'country' | 'province' | 'city' | 'district' => {
  if (areaCode === '100000') return 'country'
  
  // 省级编码规则: 末4位为0000，如110000
  if (areaCode.endsWith('0000')) return 'province'
  
  // 市级编码规则: 末2位为00，如110100
  if (areaCode.endsWith('00')) return 'city'
  
  // 其他为区县级
  return 'district'
}

// 导出省级行政区代码映射
export const provinceCodeMap = {
  '北京': '110000',
  '天津': '120000',
  '河北': '130000',
  '山西': '140000',
  '内蒙古': '150000',
  '辽宁': '210000',
  '吉林': '220000',
  '黑龙江': '230000',
  '上海': '310000',
  '江苏': '320000',
  '浙江': '330000',
  '安徽': '340000',
  '福建': '350000',
  '江西': '360000',
  '山东': '370000',
  '河南': '410000',
  '湖北': '420000',
  '湖南': '430000',
  '广东': '440000',
  '广西': '450000',
  '海南': '460000',
  '重庆': '500000',
  '四川': '510000',
  '贵州': '520000',
  '云南': '530000',
  '西藏': '540000',
  '陕西': '610000',
  '甘肃': '620000',
  '青海': '630000',
  '宁夏': '640000',
  '新疆': '650000',
  '台湾': '710000',
  '香港': '810000',
  '澳门': '820000'
}

// 格式化省份名称 (简化显示)
export const formatProvinceName = (name: string): string => {
  return name
  // 移除"省"、"自治区"、"维吾尔"、"回族"、"壮族"等后缀
  const suffixes = [
    '省', '市', '自治区', '特别行政区', '维吾尔', '回族', '壮族', '藏族', '彝族', '苗族', '侗族', '布依族',
    '朝鲜族', '蒙古族', '哈萨克族', '土家族', '瑶族', '白族', '傣族', '高山族', '景颇族', '傈僳族', '满族'
  ]
  
  let result = name
  for (const suffix of suffixes) {
    if (result.includes(suffix)) {
      result = result.replace(suffix, '')
    }
  }
  
  // 特殊情况处理
  const specialCases: Record<string, string> = {
    '内蒙古': '内蒙古',
    '宁夏': '宁夏',
    '新疆': '新疆',
    '西藏': '西藏',
    '广西': '广西',
    '香港': '香港',
    '澳门': '澳门',
    '台湾': '台湾',
    '北京': '北京',
    '上海': '上海',
    '天津': '天津',
    '重庆': '重庆'
  }
  
  if (specialCases[result]) {
    return specialCases[result]
  }
  
  // 为没有"省"字的省份添加"省"字
  if (result.length <= 3 && !['北京', '上海', '天津', '重庆', '香港', '澳门', '台湾'].includes(result)) {
    result += '省'
  }
  
  return result
} 